//#include <iostream>
//#include <vector>
//#include <math.h>
//
//using namespace std;
//
//int main()
//{
//    int t = 0;
//    cin >> t;
//    while (t--)
//    {
//        bool flag = false;
//        int n = 0;
//        int m = 0;
//        cin >> n >> m;
//        int ans = -1;
//        vector<int> a(n);
//        vector<int> b(m);
//        for (int i = 0; i < n; i++)
//        {
//            cin >> a[i];
//        }
//        for (int i = 0; i < m; i++)
//        {
//            cin >> b[i];
//        }
//        
//            int j = 0;
//            for (int i = 0; i < n; i++)
//            {
//                if (j < m && b[j] <= a[i])
//                { // 逐个找到合适的ai
//                    j++;
//                }
//            }
//            if (j == m)
//            { // 都能满足
//                ans = 0;
//                flag = true;
//            }
//            else
//            {
//                ans = b[0];
//            }
//        
//        if (flag)
//        {
//            cout << 0 << endl;
//        }
//        else{
//            int x = 0;
//            for (j = 0; j < m; j++)
//            {
//                if (j == x)
//                { // 跳过bj
//                    continue;
//                }
//                for (int i = 0; i < n; i++)
//                {
//                    if ( j < m&&b[j] <= a[i])
//                    { // 逐个找到合适的ai
//                        j++;
//                    }
//                }
//                if (j == m)
//                { // 都能满足
//                    ans = min(b[x], ans);
//                    flag = true;
//                }
//                x++; // 下一位
//            }
//            if (flag)
//            {
//                cout << ans << endl;
//            }
//            else
//            {
//                cout << -1 << endl;
//            }
//        }
//    }
//
//    return 0;
//}
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

bool canMatch(const vector<int>& a, const vector<int>& b, int skip = -1) {
    int n = a.size(), m = b.size();
    int i = 0, j = 0;
    while (i < n && j < m) {
        if (j == skip) {
            j++; // 跳过这个位置
            continue;
        }
        if (b[j] <= a[i]) {
            i++;
            j++;
        }
        else {
            i++;
        }
    }
    return (j == m || (j == m - 1 && skip == m - 1)); // 跳过后恰好匹配完
}

int main() {
    int t;
    cin >> t;
    while (t--) {
        int n, m;
        cin >> n >> m;
        vector<int> a(n), b(m);
        for (int i = 0; i < n; ++i) cin >> a[i];
        for (int i = 0; i < m; ++i) cin >> b[i];

        if (canMatch(a, b)) {
            cout << 0 << endl;
            continue;
        }

        int ans = -1;
        for (int i = 0; i < m; ++i) {
            if (canMatch(a, b, i)) {
                if (ans == -1 || b[i] < ans) {
                    ans = b[i];
                }
            }
        }

        cout << ans << endl;
    }
    return 0;
}
